
const verifications = {
    // 验证字符串是否为链接地址
    // eslint-disable-next-line
    isURL: str => /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/.test(str),
    // 验证是否为 blob 对象
    isBlob: async data => {
        try {
            const text = await data.text();
            JSON.parse(text);
            return false;
        } catch (error) {
            return true;
        }
    },
    // 验证字符串是否由字母,数字,特殊符号两种及以上组合构成
    passwordValid: str => {
        if (str.match(/[\u4e00-\u9fa5]/)) {
            // 不能使用汉字
            return false;
        }
        let count = 0;
        if (str.match(/([a-z])+/)) count++;
        if (str.match(/([0-9])+/)) count++;
        if (str.match(/([A-Z])+/)) count++;
        if (str.match(/[^a-zA-Z0-9]+/)) count++;
        return count >= 2;
    },
};

export default verifications;
